// By Cleoude
{$CLEO .cs} 
{$USE CLEO+}  
{$USE CLEO}  
{$USE ini}  

//-------------MAIN---------------
thread "TaggingupturfFix"    

:CHECK_MISSION
0AAA: 0@ = thread 'SWEET1' pointer
wait 0 
if and  
0@ <> 0
$ONMISSION == 1 
else_jump @CHECK_MISSION

:CHECK_CUTSCENE
wait 0
if
0E25: is_on_cutscene
jf @CHECK_CUTSCENE  

:CHECK_CUTSCENE2
wait 0  
if or
056A:   cutscene_skipped
02E9:   cutscene_reached_end
jf @CHECK_CUTSCENE2   
15@ = 0
28@ = 0
29@ = 0
18@ = 0
19@ = 0
27@ = 0
Wait 20 
0AF0: 25@ = read_int_from_ini_file "cleo\Tagging up Turf Fix.ini" section "Mission" key "Sweet" 
if
25@ == 1
then
0296: unload_special_actor 1
023C: load_special_actor 'SWEET3' as 1 // models 290-299 
038B: load_requested_models  
0A96: 14@ = ped $ACTOR_SWEET struct
0AA6: call_method 0x5E4880 struct 14@ num_params 1 pop 0 #SPECIAL01   
Actor.SetWalkStyle($ACTOR_SWEET, "GANG2")
end
0AF0: 25@ = read_int_from_ini_file "cleo\Tagging up Turf Fix.ini" section "Mission" key "Smoke" 
if
25@ == 1
then
023C: load_special_actor 'SMOKE2' as 10 // models 290-299 
038B: load_requested_models 
0A96: 14@ = ped $ACTOR_SMOKE struct
0AA6: call_method 0x5E4880 struct 14@ num_params 1 pop 0 #SPECIAL10        
Actor.SetWalkStyle($ACTOR_SMOKE, "FATMAN")
end


:DOOR
09B3: get_car $SWEET_CAR door_status 13@
wait 0
if and
not 15@ == 1
13@ == 3
01AF:   car $SWEET_CAR sphere $127 in_sphere 2338.74 -1500.31 22.83 radius 10.0 10.0 10.0 
jf @TAGSHIT
0AF0: 25@ = read_int_from_ini_file "cleo\Tagging up Turf Fix.ini" section "Mission" key "Seatfix" 
if
25@ == 1
then
0676: AS_actor $ACTOR_SWEET in_car $SWEET_CAR move_from_passengerseat_to_driverseat   
05D2: AS_actor $ACTOR_SWEET run_to_and_hijack_car $SWEET_CAR max_search_radius 20.0 traffic_behavior 2 
end
15@ = 1
0AF0: 25@ = read_int_from_ini_file "cleo\Tagging up Turf Fix.ini" section "Mission" key "BallasTag" 
if
25@ == 1
then
Actor.Create(22@, PedType.Mission1, 103, 2394.097070, -1469.278345, 22.97)
Actor.Angle(22@) = 350.0
    Object.Create(23@, #spraycan, 2393.997070, -1469.278345, 22.97)
    Object.CollisionDetection(23@) = False
    Object.ToggleInMovingList(23@) = False    
    070A: AS_actor 22@ attach_to_object 23@ offset 0.0 0.0 0.0 on_bone 6 16 perform_animation "NULL" IFP_file "NULL" time 1     
    06A9: AS_actor 22@ look_at_point -1469.8 2387.95 -1463.55 2396.21 999999 ms             
04ED: load_animation "GRAFFITI" 
wait 500        
0605: actor 22@ perform_animation "spraycan_fire" IFP "GRAFFITI" framedelta 4.0 loop 1 lockX 0 lockY 0 lockF 0 time -1
        066E: create_particle "spraycanp" attached_to_object 23@ with_offset 0.0 0.0 0.0 rotation 1.0 0.0 0.0 flag 1 store_to 24@  
    064C: make_particle 24@ visible 
end     
jump @TAGSHIT

:TAGSHIT
wait 0
if and 
00EC:   actor $PLAYER_ACTOR sphere 0 near_point 2395.61 -1470.52 radius 20.0 17.0  
not 28@ == 1
15@ == 1
jf @TAGSHIT2
0AF0: 25@ = read_int_from_ini_file "cleo\Tagging up Turf Fix.ini" section "Mission" key "BallasTag" 
if
25@ == 1
then
Actor.StorePos(22@, 30@, 31@, 32@)
097B: play_audio_at_object 23@ event 1134
WAIT 1500
064E: stop_particle 24@
0605: actor 22@ perform_animation "GRAFFITI_CHKOUT" IFP "GRAFFITI" framedelta 4.0 loop 0 lockX 0 lockY 0 lockF 0 time -1
wait 2000
04EF: release_animation "GRAFFITI"
end
28@ = 1
jump @TAGSHIT2


:TAGSHIT2
wait 0
if and 
00EC:   actor $PLAYER_ACTOR sphere 0 near_point 2395.61 -1470.52 radius 5.0 5.0 
28@ == 1
not 29@ == 1
JF @CRASH_Reactions
0AF0: 25@ = read_int_from_ini_file "cleo\Tagging up Turf Fix.ini" section "Mission" key "BallasTag" 
if
25@ == 1
then
0682: detach_object 23@ 0.0 0.0 0.0 collision_detection 0 
Object.ToggleInMovingList(23@) = True
Object.CollisionDetection(23@) = True
04D9: object 23@ set_scripted_collision_check 1
05E2: AS_actor 22@ kill_actor $PLAYER_ACTOR 
0647: AS_actor 22@ clear_look_task 
end 
29@ = 1
JUMP @CRASH_Reactions

:CRASH_Reactions
0AF0: 25@ = read_int_from_ini_file "cleo\Tagging up Turf Fix.ini" section "Mission" key "CrashReactions" 
if
not 25@ == 0
jf @PERCENTTAG
wait 0
if and
8185:  not car $SWEET_CAR health > 4@
0185:   car $SWEET_CAR health > 200
03C9:   car $SWEET_CAR damaged
00DB:   actor $PLAYER_ACTOR in_car $SWEET_CAR
8495: not car $SWEET_CAR burning   
03D2:   wav 1 ended
03D2:   wav 2 ended
jf @WRECK_Reactions
gosub @CRASH_Reactions2
03D1: play_wav 1
0A09: set_actor $ACTOR_SWEET muted 1 // versionB 
0967: actor $ACTOR_SWEET move_mouth 10000 ms    
05BF: AS_actor $ACTOR_SWEET look_at_actor $PLAYER_ACTOR 10000 ms
00BC: show_text_highpriority GXT 28@v time 2500 flag 1  


:CRASHEND
wait 0
if
8495: not  car $SWEET_CAR burning
jf @WRECK_Reactions
if
03D2:   wav 1 ended
jf @CRASHEND
0968: actor $ACTOR_SWEET stop_mouth 
0A09: set_actor $ACTOR_SWEET muted 0 // versionB 
0647: AS_actor $ACTOR_SWEET clear_look_task  
040D: unload_wav 1
040D: unload_wav 2
jump @WRECK_Reactions

:WRECK_Reactions
wait 0
if and
not 19@ == 1 
0495:   car $SWEET_CAR burning
jf @PERCENTTAG
065C: release_decision_maker 26@
05DB: AS_actor $ACTOR_SWEET flee_from_actor $PLAYER_ACTOR from_origin_radius 50.0 timelimit -1
wait 10
05CD: AS_actor $PLAYER_ACTOR exit_car $SWEET_CAR
if and
not actor.Dead($ACTOR_SWEET)
80DB: not  actor $PLAYER_ACTOR in_car $SWEET_CAR
0495:   car $SWEET_CAR burning
not 19@ == 1 
jf @PERCENTTAG
040D: unload_wav 1
040D: unload_wav 2
03CF: load_wav 37413 as 1 
gosub @waitwav
03D1: play_wav 1
0967: actor $ACTOR_SWEET move_mouth 10000 ms 
0A09: set_actor $ACTOR_SWEET muted 1 // versionB       
05BF: AS_actor $ACTOR_SWEET look_at_actor $PLAYER_ACTOR 10000 ms
00BC: show_text_highpriority GXT 'SWE1_AO' time 2500 flag 1  
19@ = 1


:WRECKEND
wait 0
if
03D2:   wav 1 ended
jf @WRECKEND
0968: actor $ACTOR_SWEET stop_mouth
0A09: set_actor $ACTOR_SWEET muted 0 // versionB 
0647: AS_actor $ACTOR_SWEET clear_look_task
040D: unload_wav 1
040D: unload_wav 2
jump @NONAME_LOOK4

:PERCENTTAG 
0702: 21@ = get_tags_painted_percentage_at -1469.8 2387.95 -1463.55 2396.21 
Wait 0
if and 
21@ == 100
not 27@ == 1 
not Actor.Dead(22@)
jf @NONAME_LOOK4
03CF: load_wav 37424 as 1 
gosub @waitwav   
03D1: play_wav 1
00BC: show_text_highpriority GXT 'SWE1_BB' time 2500 flag 1 
27@ = 1
    
:NONAME_LOOK4
4@ = Car.Health($SWEET_CAR)
wait 0
if  
NOT $ONMISSION == 1
jf @DOOR
Actor.DestroyInstantly($ACTOR_SWEET)
15@ = 0
28@ = 0
29@ = 0
18@ = 0
19@ = 0
27@ = 0
object.RemoveReferences(23@)
Actor.RemoveReferences(22@)
WAIT 2000
jump @CHECK_MISSION

:CRASH_Reactions2
0209: 17@ = random_int_in_ranges 1 9
if
17@ == 1
then
16@ = 37405
06D2: 28@v = "SWE1_AF" // @v = string
end
if
17@ == 2
then
16@ = 37406
06D2: 28@v = "SWE1_AG" // @v = string
end
if
17@ == 3
then
16@ = 37407
06D2: 28@v = "SWE1_AH" // @v = string
end
if
17@ == 4
then
16@ = 37408
06D2: 28@v = "SWE1_AJ" // @v = string
end
if
17@ == 5
then
16@ = 37409
06D2: 28@v = "SWE1_AK" // @v = string
end
if
17@ == 6
then
16@ = 37410
06D2: 28@v = "SWE1_AL" // @v = string
end
if
17@ == 7
then
16@ = 37411
06D2: 28@v = "SWE1_AM" // @v = string
end
if
17@ == 8
then
16@ = 37412
06D2: 28@v = "SWE1_AN" // @v = string
end  
03CF: load_wav 16@ as 1 

:waitwav
wait 0
if
03D0:   wav 1 loaded
jf @waitwav
return
